The present invention is related to a method and system to be utilized in at least one data communications network wherein conference calls are established.
A data communications network is the interconnection of two or more communicating entities (i.e., data sources and/or sinks) over one or more data links. A data communications network allows communication between multiple communicating entities over one or more data communications links.
A data communications network can be used to support a conference call. With reference now to FIG. 1, shown is a data communications network in a conference call configuration. Depicted are three humans A, B, and D interacting with application programs on computers 102, 104, and 106 in order to participate in a conference call. The interaction with the application programs typically involves the utilization of microphones, speakers, keyboards, and/or graphical user interfaces on computers 102, 104, and 106 (e.g., when a user speaks into a microphone and listens to a speaker of a computer where an application program is resident and running). For sake of clarity, only conferenced-in computer 102 is explicitly shown as having application programs 100, 101, and 103, but it is to be understood that similar application programs are present on computers 104 and 106, although such additional application programs are not shown.
For sake of illustration, the discussion herein depicts and describes logical entities as if they are application programs running on computers. For example, multipoint controller 118 and multipoint processor 120 are depicted and described as if they are subprograms of conferencing engine 126 which is itself depicted and described as a program resident within and running on network computer 110; participant A client application program 100, media transport part 101 of terminal entity A, and signaling part 103 of terminal entity A are depicted and described as if they are programs resident within and running on computer 102; and user C client application program 132, media transport part 133 of terminal entity C, and signaling part 135 of terminal entity C are depicted and described as if they are programs resident within and running on computer 134. However, those skilled in the art will appreciate that such treatment is merely illustrative and that the logical entities depicted and described herein may be implemented as hardware or any combination of hardware and software (e.g., in one implementation multipoint processor 120 is actually a stand-alone processor). In addition to the foregoing, those skilled in the art will appreciate that the fact that media transport channels are depicted herein as passing through signalling parts of terminals (e.g., signalling part 103 of terminal A) prior to terminating on media transpart parts of terminals (e.g., media transport part 101 of terminal entity A) as an indication that such channels are generally physically transmitted through network interface cards.
Illustrated is that media (e.g., audio or visual data presented to human users A, B, and D through their respective applications programs) exchanged between the application programs of conference call participants A, B, and D are carried by media transport channels 112, 114, and 116. As used herein, media transport channels refer to channels sufficient to meet defined media data transmission needs for individual conference calls. Those skilled in the art will recognize that the definition of such media data transmission needs can be pre-set by a particular data communications system, or can be set and/or reset by one or more conference call participants at call initiation and/or during a conference call. That is, as used herein the term xe2x80x9cmedia transport channelxe2x80x9d refers to a data communications channel sufficient to substantially meet such user media transmission requirements.
Media transport channels 112, 114, and 116 respectively connect individual media transport parts of terminal entities, resident on computers 102, 104, and 106, with multipoint processor 120. However, for sake of clarity only media transport part 101 of terminal entity A of computer 102 is shown, but it is to be understood that similar media transport parts are present on computers 104 and 106, although such media transport parts are not shown. Multipoint processor 120 is a conferencing engine 126 component that ensures that data is appropriately mixed and sent to various participants engaging in the conference call (e.g., data received over media transport channel 112 is mixed and sent out over media transport channels 114 and 116).
The establishment of media transport channels such as media transport channels 112, 114, and 116 is managed by call manager 108. Call manager 108 establishes and tears down media transport channels in response to call management signals sent to call manager 108 by multipoint controller 118, and signaling parts of terminal entities located within computers 102, 104, and 106. For ease of illustration, only one signaling part of a terminal entity (i.e., signaling part 103 of terminal entity A resident within computer 102) is shown, but it is to be understood that similar signaling parts are present on computers 104 and 106, although such signaling parts are not shown.
With reference now to FIG. 2, shown is event 300 wherein, in response to dial tone presented by call manager 108, human user C inputs (e.g., by a numeric keypad of computer 134) the previously-assigned (in meet-me conference calls, the human user typically knows the phone number and the password associated with the meet-me conference in advance) telephone number of the conference call service maintained by multipoint controller 118, into user C client application program 132. In response, user C client application program 132 causes signaling part 133 of terminal entity C to send message 302 to call manager 108 wherein call manager 108 is informed of the telephone number of the conference call service maintained by multipoint controller 118. In response, call manager 108 sends message 304, over call management signaling channel 128, to multipoint controller 118 directing that multipoint controller 118 accept a media transport channel originating from media transport part 133 of terminal entity C.
Depicted is that, in response to message 304, media transport channel 144 is established with multipoint controller 118. Subsequent to the establishment of media transport channel 144, illustrated is event 310 of multipoint controller 118 answering (e.g., via human speech created by a speech synthesizer) xe2x80x9cplease enter your conference call password.xe2x80x9d In response, shown is event 312 of user C client application program 132 answering back with the previously-assigned password for the conference call, which is typically entered by human user C via one or more input devices of computer 134.
With reference now to FIG. 3, depicted is that, assuming the conference call associated with receipt of the password entered by human user C is still ongoing, in response to the entered password, call manager 108 communicates 500 with multipoint controller 118 and establishes a media transport channel between the appropriate port of multipoint processor 120 and the media transport part 135 of terminal entity C. Consequently, in response to communication 500, shown is that media transport channel 144 is established with multipoint processor 120. Note that in the event that the conference call associated with the password entered by human user C is no longer ongoing, multipoint controller 118 tells human user C, via communication over media transport channel 144 and through terminal C, that the conference call is no longer ongoing.
Those having skill in the art will recognize that significant xe2x80x9ccostxe2x80x9d (as used herein, the term xe2x80x9ccostxe2x80x9d can reflect network efficiency costs, monetary costs, reliability costs, or any combination of the foregoing) is associated with establishing and maintaining media transport channels. It has been discovered by the inventors named herein (xe2x80x9cinventorsxe2x80x9d), and such discovery forms part of the inventive content of this patent application, that the foregoing-described related-art practice of establishing a media transport channel merely to be told that a conference call is no longer ongoing generates costs that would be better to avoided. Unfortunately, no practicable way of doing the foregoing exists in the prior art.
It has been discovered by the inventors, and such discovery forms part of the inventive content of this patent application, that it will sometimes be more cost effective to have a multipoint controller initiate a conference call in response to a request from a terminal to join an ongoing conference call. Unfortunately, no practicable way of doing the foregoing exists in the prior art.
It is therefore apparent that a need exists in the art for a method and system that will substantially optimize calling by decreasing the costs associated with conference calls by (1) decreasing the number of media transport channels that must be set up and torn down in order to establish that a conference call exists, and (2) by allowing the direction of call originationxe2x80x94when adding participants to conference callsxe2x80x94to be done in a substantially optimum fashion.
The inventors have devised a method and system which, among other things, can be utilized to decrease the costs associated with conference calls by (1) decreasing the number of media transport channels that must be set up and torn down in order to establish that a conference call exists, and/or (2) allowing the direction of call originationxe2x80x94when adding participants to conference callsxe2x80x94to be done in a substantially optimum fashion.
In one embodiment, a method for joining a meet-me conference call includes but is not limited to establishing a Call Optimization Application (COA) channel between a Multipoint Controller-Call Optimization Application (MC-COA) and a Call Optimization Application co-resident with the terminal (Terminal-COA) following an address resolution, in response to an application program co-resident with a terminal receiving a request to join an ongoing meet-me conference call; receiving, over the COA channel, a first message from the MC-COA as to whether the meet-me conference call is still ongoing; and in response to the first message indicating that the meet-me conference call is no longer ongoing, giving notification that the meet-me conference call is no longer ongoing. In one embodiment, in response to the first message indicating that the meet-me conference call is still ongoing, the method includes but is not limited to exchanging cost information data between the Terminal-COA and the MC-COA; and in response to user input and the exchanged cost information data, establishing a media transport channel. A related method for adding a participant to a conference call, the method including but not limited to querying a multipoint controller as to whether a meet-me conference call is still ongoing, in response to receiving a first message, over a Call Optimization Channel (COA), from a Call Optimization Application co-resident with a terminal (Terminal-COA), that a user desires to join a meet-me conference call; and sending a message, containing results of said querying, over the COA channel. In various other embodiments, hardware and/or software effect the foregoing referenced methods.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.